package com.itheima05;

public class LambdaDemo {
    public static void main(String[] args) {
//        useAddable((int x, int y) -> {
//            return x + y;
//        });
        // 参数的类型可以省略
//        useAddable((x, y) -> {
//            return x + y;
//        });

//        useFlyable((String a) -> {
//            System.out.println(a + "飞起来了");
//        });
//        useFlyable((a) -> {
//            System.out.println(a + "飞起来了");
//        });

        // 有且仅有一个参数时，小括号也可以省略
//        useFlyable(a -> {
//            System.out.println(a + "飞起来了");
//        });

        // 如果代码块只有一条代码，可以省略大括号和分号
        useFlyable(a -> System.out.println(a + "飞起来了"));

        // 有return时，省略大括号和分号，同时也要把return省略掉
        useAddable((x, y) -> x + y);

    }

    private static void useAddable(Addable a) {
        int add = a.add(10, 20);
        System.out.println("总和：" + add);
    }

    private static void useFlyable(Flyable f) {
        f.fly("小鸟");
    }
}
